This invention relates generally to rendering web or hybrid applications on computer systems and, more specifically, relates to rendering those applications natively.
This section is intended to provide a background or context to the invention disclosed below. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived, implemented or described. Therefore, unless otherwise explicitly indicated herein, what is described in this section is not prior art to the description in this application and is not admitted to be prior art by inclusion in this section. Acronyms that appear in the text or drawings are defined below, prior to the claims.
Many computing systems, such as personal computers, mobile devices, and tablets, run applications that are based on Web applications. For instance, calendar applications and webmail applications are commonplace. These types of applications have become more prevalent because of the explosion of mobile devices and other types of smaller computing systems such as tablets. Since Web browsers are ubiquitous on all of these computing systems, Web applications are also ubiquitous.
One benefit to a Web application is if the application is updated, then each client automatically accesses the updated application. Contrast this with a native application, where updates to the native application require each device to download and install the updates.
A native application is an application written using native languages specific to the particular platform. For instance, an application intended to run on a personal computer running a Microsoft Windows operating system would be written using a Windows software/driver development kit. An application intended to run on a mobile device would be written using a corresponding platform-specific programming model.
One detriment of Web applications is that they are not native, and therefore are slower and cannot perform many functions that may be performed by native applications. Such functions include accessing native functions and resources, including accessing the UI. One way to improve upon Web applications is by using “hybrid” applications, which combine features of Web applications with some features of native applications. However, these hybrid applications still have limitations, such as using Web views instead of native UI views.
On the other hand, if an application is created in native languages for one platform, the application has to be rewritten into native languages for another platform. This process is time consuming and also tends to fracture the application into two or more different versions, which may be relatively incompatible over time.